/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_Studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#pragma once

#include <node后端.h>
#include "配置.h"

#include <filesystem>


class C_节点面板;

typedef struct {
	C_节点面板**	m_选择节点;
	uint32			m_选择数量;
}S_选择节点;



typedef struct {
	//S_Props	m_时间区间;
	//S_Props	m_当前帧;
	S_Props	m_网格编辑模式;
	S_Props	m_骨骼编辑模式;
	S_Props	m_灯光编辑模式;
	//C_节点面板
}S_工程文件;


struct S_节点3D_文件路径 {
	static std::wstring g_案例目录;
};





S_工程文件* f_projectFile_创建();
void		f_projectFile_销毁(S_工程文件* p);


S_工程文件* f_projectFile_取当前工程文件(bool 创建新文件 = true);


void        f_projectFile_加载全局状态(FILE* f);
void        f_projectFile_保存全局状态(FILE* f);


void		f_projectFile_设置工程目录(std::u16string filename);
void		f_projectFile_清除工程数据();
void		f_projectFile_新建();
void		f_projectFile_载入(FILE* f);
void		f_projectFile_保存(FILE* f);

bool		f_projectFile_保存当前文件();

void		f_projectFile_设置文件保存状态(bool 是否已保存);

void		f_projectFile_载入(const std::u16string& path);


bool	on_projectFile_文件打开保存(C_Widget* self, const std::vector<std::u16string>& filenames, E_对话框类型 方式);


//bool	on_projectFile_新建扩展模块(C_Widget* self, const std::vector<std::wstring>& filenames, E_对话框类型 方式);



void        f_projectFile_保存节点(C_节点面板** node, uint32 num);


void f_projectFile_保存渲染世界(FILE* f);
void f_projectFile_加载渲染世界(FILE* f);

void f_projectFile_加载扩展库();





